package com.cn.service.impl;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.cn.dao.ProductCategoryDao;
import com.cn.dao.impl.ProductCategoryDaoImpl;
import com.cn.domain.Category;
import com.cn.domain.Product;
import com.cn.service.ProductCategoryService;

public class ProductCategoryServiceImpl implements ProductCategoryService{

	private ProductCategoryDao pcsi=new ProductCategoryDaoImpl();
	
	//商品分类：获取所有的父节点
	public Map<String,Object> queryAllParent(){
		//返回的页面结果封装成一个Map集合
		Map<String,Object> resultMap=new LinkedHashMap();
		
		//商品分类：获取所有的父节点
		List<Category> parentNode=pcsi.queryAllParent();
		//商品分类：获取所有的子节点
		List<Category> childNode=pcsi.queryAllChild();
		
		//建立父子之间的联系
		Map<Integer,List<Category>> childMap=new LinkedHashMap<>();
		if(parentNode!=null && parentNode.size()>0) {
			
			for(Category parent:parentNode) {
				//这个list等下用于装所有的子节点
				List<Category> childList=new ArrayList();
				
				for(Category child:childNode) {
					//这个list等下用于装所有的子节点
					if(child.getHpc_parent_id()==parent.getHpc_id()) {
						//
						childList.add(child);
					}
				}
				childMap.put(parent.getHpc_id(), childList);
			}
		}
		resultMap.put("parentCategory", parentNode);
		resultMap.put("childCategory", childMap);
		return resultMap;
	}
	@Override
	public List<Product> queryProductById(String type, String id,int pageNow,int pageSize) {
		if("parent".equals(type)) {
			type="HPC_ID";
		}else if("0".equals(type)){
			type="HPC_CHILD_ID";
		}else if("1".equals(type)){
			type="HPC_ID";
		}else{
			type="HPC_CHILD_ID";
		}
		return pcsi.queryProductById(type, id,pageNow,pageSize);
	}
	
	@Override
	public List<Product> queryAllProductById(String type, String id) {
		if("parent".equals(type)) {
			type="HPC_ID";
		}else if("0".equals(type)){
			type="HPC_CHILD_ID";
		}else if("1".equals(type)){
			type="HPC_ID";
		}else{
			type="HPC_CHILD_ID";
		}
		return pcsi.queryAllProductById(type,id);
	}
	//根据ID号差商品
	public Product queryProById(String id) {
		return pcsi.queryProById(id);
	}
	
	
	//获取产品信息
	@Override
	public List<Product> queryProByName(String type, String name,int pageNow,int pageSize){
		return pcsi.queryProByName(type, name, pageNow, pageSize);
	}
	
	//获取产品信息
	@Override
	public List<Product> queryProCount(String name){
		
		return pcsi.queryProCount(name);
	}
	@Override
	public List<Product> queryProByName(String name) {
		return pcsi.queryProByName(name);
	}
	@Override
	public Category queryCateById(String type, long id) {
		if("0".equals(type)){
			type="HPC_ID";
		}else if("1".equals(type)){
			type="HPC_PARENT_ID";
		}
		return pcsi.queryCateById(type, id);
	}
	
	//根据ID和节点类型查找Product
	@Override
	public Product queryProById(String type,long id,long pid) {
		if("0".equals(type)){//孩子
			type="HPC_CHILD_ID";
		}else if("1".equals(type)){//父亲
			type="HPC_ID";
		}
		return pcsi.queryProById(type, id,pid);
	}
}